package com.example.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.Dto.DishDto;
import com.example.domain.Dish;
import com.example.service.IDishService;
import com.example.utils.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/dish")
@Slf4j
public class DishController {
    @Autowired
    private IDishService dishService;

    /**
     * 添加餐品功能
     * @param dishDto
     * @return
     */
    @PostMapping
    public R save(@RequestBody DishDto dishDto){
        System.out.println(dishDto);
        dishService.save(dishDto);
        return new R(1,"添加成功");
    }

    /**
     * 分页查询菜品页面
     * @param page 当前页
     * @param pageSize 最大显示条数
     * @param name 搜索的条件
     * @return 响应到页面数据
     */
    @GetMapping("/page")
    public R page(Integer page,Integer pageSize,String name){
        System.out.println(page);
        Page<DishDto> page1 = dishService.page(page, pageSize, name);
        return new R(1,page1);
    }

    /**
     * 修改餐品的回显功能
     * @param id 餐品id
     * @return 回显的数据
     */
    @GetMapping("/{id}")
    public R get(@PathVariable Long id){
        DishDto byId = dishService.getById(id);
        return new R(1,byId);
    }

    /**
     * 修改餐品功能
     * @param dishDto 餐品对象
     * @return 响应页面数据
     */
    @PutMapping
    public R update(@RequestBody DishDto dishDto){
        dishService.update(dishDto);
        return new R(1,"修改成功");
    }

    /**
     * 根据条件查询菜品应用于套餐添加时选取对应分类的餐品
     * 移动端传递条件查询出餐品对应的味道信息
     * @param dishDto 条件对象
     * @return 响应页面数据
     */
    @GetMapping("/list")
    public R list(Dish dishDto){
        List<DishDto> list = dishService.list(dishDto);
        return new R(1,list);
    }
}
